﻿using System;
using System.Linq.Expressions;
using Medora.Model;
using Medora.Model.Basic;

namespace Medora.Services.Utils
{
    public interface IFilterConstructor<T, B> where T : IFilter where B : Entity
    {
        Expression<Func<B, bool>> GetFilter(T filter, Expression<Func<B, bool>> startExpresion);
        Expression<Func<B, bool>> And<B>(Expression<Func<B, bool>> first, Expression<Func<B, bool>> second);
        Expression<Func<B, bool>> Or<B>(Expression<Func<B, bool>> first, Expression<Func<B, bool>> second);
    }
}